package br.jcrsistemas.syscomercio.bean;

import java.math.BigDecimal;
import java.sql.SQLException;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

import org.hibernate.Session;
import org.hibernate.Transaction;

import br.jcrsistemas.database.HibernateUtility;
import br.jcrsistemas.syscomercio.dao.CategoriaProdutoDAO;

@Entity
@Table(name = "produtos")
@SequenceGenerator(name="SEQUENCE_PRODUTO",sequenceName="produtos_id_seq")
public class Produto {
	@Id
	@GeneratedValue(strategy=GenerationType.AUTO,generator="SEQUENCE_PRODUTO")
	@Column(name="id_produto")
	private int id;
	@Column(name="codigo_barra", length=13)
	private String codigoBarra;
	@Column(name="descricao", length=60)
	private String descricao;
	@Column(name="preco_compra",precision=15,scale=2)
	private BigDecimal precoCompra;
	@Column(name="preco_venda",precision=15, scale=2)
	private BigDecimal precoVenda;
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="id_categoria_produto")
	private CategoriaProduto categoria;
	
	public static void main(String[] args) {
		System.out.println(1/2);
		Session sessao = HibernateUtility.getSessao();
		Transaction tx = sessao.beginTransaction();
		Produto p = new Produto();
		p.setCodigoBarra("666");
		p.setDescricao("Descricao3");
		p.setPrecoCompra(new BigDecimal(13.65));
		p.setPrecoVenda(new BigDecimal(14.70));
		
		CategoriaProduto cp = new CategoriaProduto();
		cp.setCategoria("CAT TESTE");
		
		p.setCategoria(cp);
		sessao.saveOrUpdate(cp);
		sessao.saveOrUpdate(p);
		tx.commit();
		sessao.close();
//		CategoriaProdutoDAO dao = new CategoriaProdutoDAO();
//		try {
//			for(CategoriaProduto c: dao.listarTodos()) {
//				System.out.println(c.getId() + "-" + c.getCategoria());
//			}
//		} catch (SQLException e) {
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		}
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getCodigoBarra() {
		return codigoBarra;
	}

	public void setCodigoBarra(String codigoBarra) {
		this.codigoBarra = codigoBarra;
	}

	public String getDescricao() {
		return descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	public BigDecimal getPrecoCompra() {
		return precoCompra;
	}

	public void setPrecoCompra(BigDecimal precoCompra) {
		this.precoCompra = precoCompra;
	}

	public BigDecimal getPrecoVenda() {
		return precoVenda;
	}

	public void setPrecoVenda(BigDecimal precoVenda) {
		this.precoVenda = precoVenda;
	}

	public void setCategoria(CategoriaProduto categoria) {
		this.categoria = categoria;
	}

	public CategoriaProduto getCategoria() {
		return categoria;
	}
}
